<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		
	</head>
	<body>
		
		<script>
			 /**
			  *UUID生成器 
			  */
			function makeUUID(){
			  const uuid =([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
			    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
			  );
			  
			  return uuid;
			}
			/**
			 * 将url中的参数封装成对象
			 */
			function makeUrlToParam(){
				const url = 'http://url.com/page?name=Adam&surname=Smith&Age=18';
			  	const getUrlParameters=url.match(/([^?=&]+)(=([^&]*))/g).reduce(
			    	(a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {}
			  	);
			  
			  return getUrlParameters;
			}
			/**
			 * 斐波那契数组生成器
			 * 创建一个特定长度的空数组，初始化前两个值（0和1）。使用Array.reduce（）向数组中添加值，后面的一个数等于前面两个数相加之和（前两个除外）。
			 */
			function makeFibona(){
  				const fibonacci = n =>Array(n).fill(0).reduce((acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), []);
				return fibonacci(5);
			}
			/**
			 * 两点之间的距离
			 */
			function TowPointDist(){
				const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
				
				return distance(1,1, 2,3);
			}
			/**
			 * 计数数组中值的出现次数
			 */
			function countShowNumbers(){
				const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
				return countOccurrences([1,1,2,1,2,3], 1);
			}
			/**
			 * 求平均数
			 */
			function getAverage(){
				const average = arr => arr.reduce((acc, val) => acc + val, 0) / arr.length;
				return  average([1,2,3]);
			}
			
			console.log(getAverage())
			
		</script>
	</body>
</html>
